<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Acquires an exclusive lock on a given key</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.wincache-fcache-meminfo.html">wincache_fcache_meminfo</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.wincache-ocache-fileinfo.html">wincache_ocache_fileinfo</a></div>
 <div class="up"><a href="ref.wincache.html">WinCache 函数</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="function.wincache-lock" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">wincache_lock</h1>
  <p class="verinfo">(PECL wincache &gt;= 1.1.0)</p><p class="refpurpose"><span class="refname">wincache_lock</span> &mdash; <span class="dc-title">
   Acquires an exclusive lock on a given key
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.wincache-lock-description">
  <h3 class="title">说明</h3>
  <div class="methodsynopsis dc-description">
   <span class="type">bool</span> <span class="methodname"><strong>wincache_lock</strong></span>
    ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$key</code></span>
   [, <span class="methodparam"><span class="type">bool</span> <code class="parameter">$isglobal</code><span class="initializer"> = false</span></span>
  ] )</div>

  <p class="para rdfs-comment">
   Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the 
   lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same 
   key will be blocked, until the current script releases the lock by using <span class="function"><a href="function.wincache-unlock.html" class="function">wincache_unlock()</a></span>.
  </p>
  <div class="warning"><strong class="warning">Warning</strong>
   <p class="simpara">
    Using of the <span class="function"><strong>wincache_lock()</strong></span> and <span class="function"><a href="function.wincache-unlock.html" class="function">wincache_unlock()</a></span> can cause deadlocks when 
    executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are 
    absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to
    use these functions.
   </p>
  </div>
 </div>

 <div class="refsect1 parameters" id="refsect1-function.wincache-lock-parameters">
  <h3 class="title">参数</h3>
  <p class="para">
   <dl>

    
     <dt>
<em><code class="parameter">key</code></em></dt>

     <dd>

      <p class="para">
       Name of the key in the cache to get the lock on.
      </p>
     </dd>

    
    
     <dt>
<em><code class="parameter">isglobal</code></em></dt>

     <dd>

      <p class="para">
       Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool 
       in IIS FastCGI case or to all php processes that have the same parent process identifier.
      </p>
     </dd>

    
   </dl>

  </p>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.wincache-lock-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="para">
   成功时返回 <strong><code>TRUE</code></strong>， 或者在失败时返回 <strong><code>FALSE</code></strong>。
  </p>
 </div>

 <div class="refsect1 examples" id="refsect1-function.wincache-lock-examples">
  <h3 class="title">范例</h3>
  <p class="para">
   <div class="example" id="example-535">
    <p><strong>Example #1 Using <span class="function"><strong>wincache_lock()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">"/tmp/lock.txt"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"r+"</span><span style="color: #007700">);<br />if&nbsp;(</span><span style="color: #0000BB">wincache_lock</span><span style="color: #007700">(</span><span style="color: #0000BB">“lock_txt_lock”</span><span style="color: #007700">))&nbsp;{&nbsp;</span><span style="color: #FF8000">//&nbsp;do&nbsp;an&nbsp;exclusive&nbsp;lock<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ftruncate</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;truncate&nbsp;file<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"Write&nbsp;something&nbsp;here\n"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">wincache_unlock</span><span style="color: #007700">(</span><span style="color: #0000BB">“lock_txt_lock”</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;release&nbsp;the&nbsp;lock<br /></span><span style="color: #007700">}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"Couldn't&nbsp;get&nbsp;the&nbsp;lock!"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.wincache-lock-seealso">
  <h3 class="title">参见</h3>
  <p class="para">
   <ul class="simplelist">
    <li class="member"><span class="function"><a href="function.wincache-unlock.html" class="function" rel="rdfs-seeAlso">wincache_unlock()</a> - Releases an exclusive lock on a given key</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-set.html" class="function" rel="rdfs-seeAlso">wincache_ucache_set()</a> - Adds a variable in user cache and overwrites a variable if it already exists in the cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-get.html" class="function" rel="rdfs-seeAlso">wincache_ucache_get()</a> - Gets a variable stored in the user cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-delete.html" class="function" rel="rdfs-seeAlso">wincache_ucache_delete()</a> - Deletes variables from the user cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-clear.html" class="function" rel="rdfs-seeAlso">wincache_ucache_clear()</a> - Deletes entire content of the user cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-exists.html" class="function" rel="rdfs-seeAlso">wincache_ucache_exists()</a> - Checks if a variable exists in the user cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-meminfo.html" class="function" rel="rdfs-seeAlso">wincache_ucache_meminfo()</a> - Retrieves information about user cache memory usage</span></li>
    <li class="member"><span class="function"><a href="function.wincache-ucache-info.html" class="function" rel="rdfs-seeAlso">wincache_ucache_info()</a> - Retrieves information about data stored in the user cache</span></li>
    <li class="member"><span class="function"><a href="function.wincache-scache-info.html" class="function" rel="rdfs-seeAlso">wincache_scache_info()</a> - Retrieves information about files cached in the session cache</span></li>
   </ul>
  </p>
 </div>


</div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.wincache-fcache-meminfo.html">wincache_fcache_meminfo</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.wincache-ocache-fileinfo.html">wincache_ocache_fileinfo</a></div>
 <div class="up"><a href="ref.wincache.html">WinCache 函数</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
